WebSocketClient   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 6
eloc 29
dl 0
loc 32
rs 10
c 0
b 0
f 0

6 Functions

Rating   Name   Duplication   Size   Complexity  
A ready 0 1 1
A send 0 5 1
A off 0 1 1
A close 0 1 1
A on 0 1 1
A open 0 1 1
1
// Generated by dts-bundle-generator v9.5.1
2
3
declare namespace wsc {
4
	interface DataObject {
5
		[key: string]: any;
6
	}
7
	type WSEvent = "open" | "message" | "close" | "error" | "timeout";
8
	/** Minimal socket-like interface. */
9
	interface Socket {
10
		readyState: number;
11
		send(...any: any[]): void;
12
		close(): void;
13
		addEventListener: WebSocket["addEventListener"];
14
		removeEventListener: WebSocket["removeEventListener"];
15
	}
16
	type AsyncErrCode = Promise<number | null | {}>;
17
	type EventHandler = (e: any) => void;
18
	type DataPipe = (message: any) => any;
19
	type DataType = "json" | "string";
20
	interface Config {
21
		data_type: DataType;
22
		log(event: string, time?: number | null, message?: any): void;
23
		log(event: string, message?: any): void;
24
		timer: boolean;
25
		url: string;
26
		timeout: number;
27
		reconnect: number;
28
		reconnection_attempts: number;
29
		max_idle_time: number;
30
		lazy: boolean;
31
		socket: Socket | null;
32
		adapter: (host: string, protocols?: string[]) => Socket;
33
		encode: (key: string, message: any, config: Config) => any;
34
		decode: (rawMessage: any) => {
35
			[id_or_data_key: string]: string;
36
		};
37
		protocols: string[];
38
		pipes: DataPipe[];
39
		server: {
40
			id_key: string;
41
			data_key: string;
42
		};
43
		ping: {
44
			interval: number;
45
			content: any;
46
		};
47
	}
48
	type UserConfig = Partial<Config>;
49
	type SendOptions = Partial<{
50
		top: any;
51
		data_type: DataType;
52
		_is_ping: boolean;
53
	}>;
54
	interface Message {
55
		msg: any;
56
		ff(x: any): any;
57
		data_type: DataType;
58
		sent_time: number | null;
59
		timeout: NodeJS.Timeout;
60
	}
61
}
62
declare class WebSocketClient {
63
	private ws;
64
	private intentionally_closed;
65
	private reconnect_timeout;
66
	private queue;
67
	private onReadyQueue;
68
	private onCloseQueue;
69
	private handlers;
70
	private config;
71
	private ping_timer;
72
	private idle_timer;
73
	private get opened();
74
	private init_flush;
75
	private call;
76
	private log;
77
	private resetPing;
78
	private resetIdle;
79
	private initSocket;
80
	private opening;
81
	private connect;
82
	get socket(): wsc.Socket | null;
83
	ready(): Promise<void>;
84
	on(event_name: wsc.WSEvent, handler: (data: any) => any, predicate?: (data: any) => boolean, raw?: boolean): wsc.EventHandler;
85
	off(event_name: wsc.WSEvent, handler: (data: any) => any, raw?: boolean): void;
86
	close(): wsc.AsyncErrCode;
87
	open(): Promise<number | null> | undefined;
88
	/**  .send(your_data) wraps request to server with {id: `hash`, data: `actually your data`},
89
	  returns a Promise that will be rejected after a timeout or
90
	  resolved if server returns the same signature: {id: `same_hash`, data: `response data`}.
91
	*/
92
	send<RequestDataType = any, ResponseDataType = any>(message_data: RequestDataType, opts?: wsc.SendOptions): Promise<ResponseDataType>;
93
	constructor(user_config?: wsc.UserConfig);
94
}
95
96
export {
97
	WebSocketClient as default,
98
};
99
100
export {};
101